Due to the design of tramp, the encoding and decoding programs need to read from stdin and write to stdout. On some systems, uudecode -o - will read stdin and write the decoded file to stdout, on other systems uudecode -p does the same thing. But some systems have uudecode implementations which cannot do this at all—it is not possible to call these uudecode implementations with suitable parameters so that they write to stdout.
Of course, this could be circumvented: the begin foo
644 line could be rewritten to put in some temporary
file name, then uudecode could be called, then the
temp file could be printed and deleted.
But I have decided that this is too fragile to reliably work, so on some systems you'll have to do without the uuencode methods.
The GNU Emacs maintainers wish to use a unified filename syntax for Ange-FTP and tramp so that users don't have to learn a new syntax. It is sufficient to learn some extensions to the old syntax.
For the XEmacs maintainers, the problems caused from using a unified filename syntax are greater than the gains. The XEmacs package system uses EFS for downloading new packages. So, obviously, EFS has to be installed from the start. If the filenames were unified, tramp would have to be installed from the start, too.